// 模拟数据生成工具

// 微信昵称列表
const nicknames = [
  '阳光下的微笑', '星空漫步', '小确幸', '时光机', '酸甜的柠檬',
  '青春不毕业', '南巷清风', '温柔月光', '心动瞬间', '理想三旬',
  '山海皆可平', '北巷九命猫', '不知道取什么名字', '一颗柠檬树', '追光者',
  '一枝花开', '一路向北', '春风十里', '南方姑娘', '夏天的风',
  '勇敢小狮子', '碎碎念', '南城以北', '西柚味少女', '山水不相逢',
  '刘亦菜', '西瓜丶夏天', '辣条味软妹', '柠檬味少年', '草莓味小仙女',
  '明天的希望', '遇见更好的自己', '微风不燥', '记忆是花火', '时光不老',
  '滇池学子', '滇院学霸', '快乐的肥宅', '校园漫步者', '奔跑的梦想',
  '晨曦的光', '沉默是金', '流星雨的夜', '未来可期', '且听风吟',
  '小奶狗', '酷酷的学长', '文艺青年', '爱笑的女孩', '安静的美男子',
  '吃货一枚', '学霸君', '小鹿乱撞', '甜筒冰淇淋', '柠檬汽水',
  '草莓奶昔', '芝士就是力量', '熬夜冠军', '早起鸟儿', '图书馆常客'
];

// 表白内容列表
const confessionContents = [
  '那天在图书馆看见你，认真读书的样子真美，想认识你很久了。',
  '偷偷喜欢你一个学期了，每次在二食堂看到你都忍不住多看几眼。',
  '你走过的地方，我每天都会去看看，希望能偶遇你。',
  '你知道吗？每次听到你的笑声，我的心情都会变得很好。',
  '希望有一天能和你一起在校园的樱花树下散步。',
  '喜欢你，就像呼吸一样自然，但又紧张得不能呼吸。',
  '那天一起上自习，你认真的侧脸，我偷看了好多次。',
  '每天都在想，如果有勇气和你说一句话会怎样？',
  '听说你喜欢看星星，我也是，或许我们可以一起去天文台？',
  '在滇池学院的这些日子，因为有你才变得美好。',
  '想邀请你去尝尝学校外面新开的奶茶店，不知道你愿不愿意？',
  '认识你是我在大学里做过最正确的决定。',
  '你可能不记得我，但我是上学期和你一起上过微积分的同学。',
  '一起去看音乐节吧，我买了两张票，就等你了。',
  '我喜欢你很久了，就像春风十里，不及你嫣然一笑。',
  '喜欢和你一起自习，喜欢和你一起吃饭，喜欢和你一起走在校园里。',
  '你是我漫长岁月里的一束光，照亮我前行的道路。',
  '最好的年纪遇见你，真的很幸运。',
  '你的笑容在我心里种下了一朵花，每天都在绽放。',
  '为了在课堂上看到你，我从没迟到过。',
  '我想，你就是我在人群中一眼就能认出的那个人。',
  '每次跑早操都希望能和你遇见，哪怕只是远远地看一眼。',
  '或许你没有发现，我一直在偷偷关注你的朋友圈。',
  '最喜欢看你认真回答问题的样子，真的很迷人。',
  '希望毕业季来临时，我们不会擦肩而过。',
  '四年大学时光，最美好的事情就是遇见了你。',
  '一起参加了那么多活动，你知道我喜欢你吗？',
  '教室、图书馆、食堂、操场，都留下了我们的足迹，真希望时间能走得慢一点。',
  '你知道吗？每次你不经意的问候都让我开心很久。',
  '明亮而温暖，就像阳光下的你，让人忍不住靠近。',
  '你的背影，是我见过最美的风景。',
  '想和你一起看遍校园的每一个角落。',
  '每次路过你常去的地方，都会放慢脚步。',
  '你的一句问候，能让我开心一整天。',
  '如果可以，我想成为你生活中的一部分。',
  '你的存在，让我的大学生活变得有意义。',
  '我想告诉你，你对我有多重要。',
  '遇见你，是我大学里最美好的意外。',
  '你的笑容，是我每天努力的理由。',
  '希望有一天，我们能一起走过春夏秋冬。'
];

// 联系方式类型
const contactTypes = ['wechat', 'qq', 'phone', 'email'];

// 随机生成微信昵称
function generateRandomNickname() {
  return nicknames[Math.floor(Math.random() * nicknames.length)];
}

// 随机生成表白内容
function generateRandomContent() {
  return confessionContents[Math.floor(Math.random() * confessionContents.length)];
}

// 随机生成联系方式
function generateRandomContact(type) {
  switch(type) {
    case 'wechat':
      return `wx_${Math.random().toString(36).substr(2, 8)}`;
    case 'qq':
      return `${Math.floor(Math.random() * 900000000) + 100000000}`;
    case 'phone':
      return `1${Math.floor(Math.random() * 9) + 3}${Math.floor(Math.random() * 100000000).toString().padStart(9, '0')}`;
    case 'email':
      const domains = ['qq.com', '163.com', 'gmail.com', 'outlook.com', 'dicixueyuan.edu.cn'];
      const domain = domains[Math.floor(Math.random() * domains.length)];
      return `${Math.random().toString(36).substr(2, 8)}@${domain}`;
    default:
      return `wx_${Math.random().toString(36).substr(2, 8)}`;
  }
}

// 随机生成表白数据
function generateRandomConfession() {
  const isAnonymous = Math.random() > 0.7; // 30%概率匿名
  const contactType = contactTypes[Math.floor(Math.random() * contactTypes.length)];
  const hasContact = Math.random() > 0.4; // 60%概率留联系方式
  
  return {
    author: isAnonymous ? '匿名用户' : generateRandomNickname(),
    content: generateRandomContent(),
    isAnonymous: isAnonymous,
    contact: hasContact ? generateRandomContact(contactType) : '',
    contactType: contactType,
    createTime: new Date(Date.now() - Math.floor(Math.random() * 7 * 24 * 60 * 60 * 1000)), // 过去7天内随机时间
    avatar: `/images/avatar${Math.floor(Math.random() * 3) + 1}.png`,
    id: Date.now().toString() + Math.floor(Math.random() * 1000),
    likes: Math.floor(Math.random() * 50),
    comments: Math.floor(Math.random() * 20)
  };
}

// 生成多条表白数据
function generateConfessions(count = 20) {
  const confessions = [];
  for (let i = 0; i < count; i++) {
    confessions.push(generateRandomConfession());
  }
  return confessions;
}

module.exports = {
  generateRandomNickname,
  generateRandomContent,
  generateRandomContact,
  generateRandomConfession,
  generateConfessions
};